package com.csthink.mq.rocketmq.enhance;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * RocketMQ 消息实体 {@link RocketMQEnhanceTemplate} 发送的所有消息都应该继承此类
 *
 * @author <a href="mailto:security.2009@live.cn">Mars</a>
 * @since 2023-09-07
 */
@Data
public class BaseMessage {

    /**
     * 业务键，用于 RocketMQ 控制台查看消费情况
     */
    protected String key;

    /**
     * 发送消息来源，用于排查问题
     */
    protected String source = "";

    /**
     * 发送时间
     */
    protected LocalDateTime sendTime = LocalDateTime.now();

    /**
     * 重试次数，用于判断重试次数，超过重试次数发送异常警告
     */
    protected Integer retryTimes = 0;
}
